package com.mars.component.scheduler.service;

import org.quartz.Job;

import com.mars.component.scheduler.model.SchedulerJob;

public interface SchedulerService {
	
	/**
	 * 创建定时任务
	 * @param clazz 任务执行类，该类需实现Job接口
	 * @param schedulerJob
	 */
	public void createScheduleJob(Class<? extends Job> clazz, SchedulerJob schedulerJob) ;
	
	/**
	 * 创建定时任务
	 * @param schedulerJob
	 */
	public void createScheduleJob(SchedulerJob schedulerJob) ;
	
	/**
	 * 修改作业调度的触发时间
	 * @param task
	 */
	public void rescheduleJob(SchedulerJob schedulerJob) ;
	
	/**
	 * 暂停作业
	 * @param jobIds
	 * @param groups
	 */
	public void pauseJob(String[] jobIds, String[] groups) ;
	public void pauseJob(String jobId, String group) ;
	
	/**
	 * 恢复作业
	 * @param jobIds
	 * @param groups
	 */
	public void resumeJob(String[] jobIds, String[] groups) ;
	public void resumeJob(String jobId, String group) ;
	
	
	/**
	 * 删除作业
	 * @param jobIds
	 * @param groups
	 */
	public void deleteJob(String[] jobIds, String[] groups) ;
	public void deleteJob(String jobId, String group) ;
	
	
	/**
	 * 立即执行作业
	 * @param jobIds
	 * @param groups
	 */
	public void runNowJob(String[] jobIds, String[] groups) ;
	public void runNowJob(String jobId, String group) ;
	
	/**
	 * 检查任务作业是否存在
	 * @param jobId
	 * @param group
	 */
	public boolean checkExists(String jobId, String group) ;

}
